package com.ruoyi.custom.service;

import java.util.List;
import java.util.Set;

import com.ruoyi.custom.domain.TCustomInfo;

/**
 * 客户信息Service接口
 * 
 * @author wzy
 * @date 2025-01-03 09:15:59
 */
public interface ITCustomInfoService 
{
    /**
     * 查询客户信息
     * 
     * @param customerId 客户信息主键
     * @return 客户信息
     */
    public TCustomInfo selectTCustomInfoByCustomerId(Long customerId);

    /**
     * 查询客户信息列表
     * 
     * @param tCustomInfo 客户信息
     * @return 客户信息集合
     */
    public List<TCustomInfo> selectTCustomInfoList(TCustomInfo tCustomInfo);

    /**
     * 新增客户信息
     * 
     * @param tCustomInfo 客户信息
     * @return 结果
     */
    public int insertTCustomInfo(TCustomInfo tCustomInfo);

    /**
     * 修改客户信息
     * 
     * @param tCustomInfo 客户信息
     * @return 结果
     */
    public int updateTCustomInfo(TCustomInfo tCustomInfo);

    /**
     * 批量删除客户信息
     * 
     * @param customerIds 需要删除的客户信息主键集合
     * @return 结果
     */
    public int deleteTCustomInfoByCustomerIds(Long[] customerIds);

    /**
     * 删除客户信息信息
     * 
     * @param customerId 客户信息主键
     * @return 结果
     */
    public int deleteTCustomInfoByCustomerId(Long customerId);

    /**
     * 查询所有客户信息
     *
     * @return 客户信息集合
     */
    public List<TCustomInfo> selectTCustomInfoAll();

    /**
     * 根据用户ID获取客户选择框列表
     *
     * @param userId 用户ID
     * @return 选中客户ID列表
     */
    public List<Long> selectCustomListByUserId(Long userId);

    /**
     * 根据用户ID查询数据权限
     *
     * @param userId 用户ID
     * @return 权限列表
     */
    public Set<String> selectCustomPermissionByUserId(Long userId);

    /**
     * 校验客户名称是否唯一
     *
     * @param tCustomInfo 客户信息
     * @return 结果
     */
    public String checkCustomerNameUnique(TCustomInfo tCustomInfo);

}
